<html>
<head>
<title>Multiplexer</title>
</head>

<body bgcolor="FFFFFF">

<h1><img align="center" height="32" width="32" src="../../../icons/multiplexer.gif">
<em>Multiplexer</em></h1>

<p><table>
<tr><td><strong>Library:</strong></td>
	<td><a href="index.html">Plexers</a></td></tr>
<tr><td><strong>Introduced:</strong></td>
	<td>2.0 Beta 11</td></tr>
<tr><td valign="top"><strong>Appearance:</strong></td>
	<td valign="top"><img src="../../../img-libs/mux.png"></td></tr>
</table></p>

<h2>Behavior</h2>

<p>Copies an input on the west edge onto the output on
the east edge; which of the inputs to copy is specified via the
current value received through the input on the south edge.
I find it useful to think of a multiplexer as analogous to a railroad
switch, controlled by the select input.</p>

<p>(Incidentally, some authorities spell this
<em>multiplex<strong>o</strong>r</em>,
but <em>multiplex<strong>e</strong>r</em> is the predominant
spelling.)</p>

<h2>Pins (assuming component faces east, select is bottom/left)</h2>

<dl>

<dt>West edge, variable number (inputs, bit width matches Data Bits attribute)</dt>
<dd>Data values, one of which is to be routed to the output.
Each input data value is numbered, starting with 0 on the north.</dd>

<dt>East edge (output, bit width matches Data Bits attribute)</dt>
<dd>The output value will match the input values on the west
edge whose number is the same as the value currently received
through the select input on the south.
If the select input contains any unspecified (i.e., floating) bits,
then the output is completely floating.</dd>

<dt>South edge, left side indicated by gray circle (input, bit width matches Select Bits attribute)</dt>
<dd>Select input: The value of this input determines which input
on the west edge to route to the output on the east edge.</dd>

<dt>South edge, right side (input, bit width 1)</dt>
<dd>Enable: When 0, the multiplexer's output consists of all floating bits,
regardless of the data and select inputs.</dd>

</dl>

<h2>Attributes</h2>

<p>When the component is selected or being added,
the digits '1' through '4' alter its <q>Select Bits</q> attribute,
Alt-0 through Alt-9 alter its <q>Data Bits</q> attribute,
and the arrow keys alter its <q>Facing</q> attribute.</p>

<dl>

<dt>Facing</dt>
<dd>The direction of the component (its output relative to its input).</dd>

<dt>Select Location</dt>
<dd>The location of the select and enable lines relative to the component.</dd>

<dt>Select Bits</dt>
<dd>The bit width of the component's select input on its south edge.
The number of inputs to the multiplexer will be
2<sup><var>selectBits</var></sup>.</dd>

<dt>Data Bits</dt>
<dd>The bit width of the data being routed through the multiplexer.</dd>

<dt>Disabled Output</dt>
<dd>Specifies what each bit of the output should be when the component is
disabled (i.e., when the enable pin is 0). Options include zero and floating;
in the latter case, the output is effectively disconnected from any other ports.</dd>

<dt>Include Enable?</dt>
<dd>The component has an enable input when this attribute is <q>yes.</q>
The attribute is primarily for supporting circuits built using older versions of
Logisim that did not provide an enable input.</dd>

</dl>

<h2>Poke Tool Behavior</h2>

<p>None.</p>

<h2>Text Tool Behavior</h2>

<p>None.</p>

<p><a href="../index.html">Back to <em>Library Reference</em></a></p>

</body>
</html>
